{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "84d26ba3",
   "metadata": {},
   "source": [
    "# Optional Lab: Back propagation using a computation graph\n",
    "Working through this lab will give you insight into a key algorithm used by most machine learning frameworks. Gradient descent requires the derivative of the cost with respect to each parameter in the network.  Neural networks can have millions or even billions of parameters. The *back propagation* algorithm is used to compute those derivatives. *Computation graphs* are used to simplify the operation. Let's dig into this below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "55de2e8c",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import *\n",
    "import numpy as np\n",
    "import re\n",
    "%matplotlib widget\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.widgets import TextBox\n",
    "from matplotlib.widgets import Button\n",
    "import ipywidgets as widgets\n",
    "from lab_utils_backprop import *"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d41bc53f",
   "metadata": {},
   "source": [
    "## Computation Graph\n",
    "A computation graph simplifies the computation of complex derivatives by breaking them into smaller steps. Let's see how this works.\n",
    "\n",
    "Let's calculate the derivative of this slightly complex expression, $J = (2+3w)^2$. We would like to find the derivative of $J$ with respect to $w$ or $\\frac{\\partial J}{\\partial w}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "8ce63474",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<lab_utils_backprop.plt_network at 0x1eaac20e4d0>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6be00cc3e09b4d7a815eeca7c1ce8804",
       "version_major": 2,
       "version_minor": 0
      },
      "image/png": "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qXmUVnWgMLdH+v0z/Pz/ixACmdGXodPkwrwOF7ykqoEBi6oVe9+uUGU8QsrtAxAl3K6jtspNuo/km3tRJ+iFym4KVQC50hxubd9G4vVdSLi8BXlpcdBp8mpt2BJCQKdVQ5WRgORbBxB7ehXc242EwpyL71LVIIna+u18Qunp6bC1tdXf/Z2MSwiB7Ic3EXd2NSxcGsPWuy3MnRpCkpXjjsE1ikBe2kOkR55H+v0zsGvUBY7+PWvx61GzCSGgzniE+EvrkZf+EEKTV6tn3EkAJIUpFOa2cGk+CGYO3lz+oQqqrcdNBqxyqq0flKpECAFtbjoSr+9G1sMbyEmKAGrxx9jEyhmWbkFwaNwt/wDDK3pqPJ1GBa0qCzp1DoSovT25kiSDTGEKuYklZEqzym4OlaC2Hjd5FSFVO5IkQWFuC9eWgyu7KUSVQqYwgUxhAsC+sptCRCXgqS4RERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYRERGRgTFgERERERkYAxYR1Xjx2UBIIiBEZbeEqhqVSoXExESo1epyPS83NxdJSUnQaDRlfo5Wq0VSUhJUKlV5m0nVEAMWEdV4DzKBg9GV3YqKJ4TAnTt3sGPHDh7EH0MIgfv37+OHH37A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",
      "text/html": [
       "\n",
       "            <div style=\"display: inline-block;\">\n",
       "                <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
       "                    Figure\n",
       "                </div>\n",
       "                <img src='' width=600.5154639175257/>\n",
       "            </div>\n",
       "        "
      ],
      "text/plain": [
       "Canvas(footer_visible=False, header_visible=False, toolbar=Toolbar(toolitems=[('Home', 'Reset original view', …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.close(\"all\")\n",
    "plt_network(config_nw0, \"./images/C2_W2_BP_network0.PNG\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b8b71c21",
   "metadata": {},
   "source": [
    "Above, you can see we broke the expression into two nodes which we can work on independently. If you already have a good understanding of the process from the lecture, you can go ahead and fill in the boxes in the diagram above. You will want to first fill in the blue boxes going left to right and then fill in the green boxes starting on the right and moving to the left.\n",
    "If you have the correct values, the values will show as green or blue. If the value is incorrect, it will be red. Note, the interactive graphic is not particularly robust. If you run into trouble with the interface, run the cell above again to restart.\n",
    "\n",
    "If you are unsure of the process, we will work this example step by step below.\n",
    "\n",
    "### Forward Propagation   \n",
    "Let's calculate the values in the forward direction.\n",
    "\n",
    ">Just a note about this section. It uses global variables and reuses them as the calculation progresses. If you run cells out of order, you may get funny results. If you do, go back to this point and run them in order."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ec4c88a7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a = 11, J = 121\n"
     ]
    }
   ],
   "source": [
    "w = 3\n",
    "a = 2+3*w\n",
    "J = a**2\n",
    "print(f\"a = {a}, J = {J}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e527b71",
   "metadata": {},
   "source": [
    "You can fill these values in the blue boxes above."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae042e5c",
   "metadata": {
    "tags": []
   },
   "source": [
    "### Backprop\n",
    "<img align=\"left\" src=\"./images/C2_W2_BP_network0_j.PNG\"     style=\" width:100px; padding: 10px 20px; \" > Backprop is the algorithm we use to calculate derivatives. As described in the lectures, backprop starts at the right and moves to the left. The first node to consider is $J = a^2 $ and the first step is to find $\\frac{\\partial J}{\\partial a}$ \n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e996ebf",
   "metadata": {},
   "source": [
    "### $\\frac{\\partial J}{\\partial a}$ \n",
    "#### Arithmetically\n",
    "Find $\\frac{\\partial J}{\\partial a}$ by finding how $J$ changes as a result of a little change in $a$. This is described in detail in the derivatives optional lab."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "1a7c6040",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "J = 121, J_epsilon = 121.02200099999999, dJ_da ~= k = 22.000999999988835 \n"
     ]
    }
   ],
   "source": [
    "a_epsilon = a + 0.001       # a epsilon\n",
    "J_epsilon = a_epsilon**2    # J_epsilon\n",
    "k = (J_epsilon - J)/0.001   # difference divided by epsilon\n",
    "print(f\"J = {J}, J_epsilon = {J_epsilon}, dJ_da ~= k = {k} \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f4fce8e",
   "metadata": {},
   "source": [
    "$\\frac{\\partial J}{\\partial a}$ is 22 which is $2\\times a$. Our result is not exactly $2 \\times a$ because our epsilon value is not infinitesimally small. \n",
    "#### Symbolically\n",
    "Now, let's use SymPy to calculate derivatives symbolically as we did in the derivatives optional lab. We will prefix the name of the variable with an 's' to indicate this is a *symbolic* variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3c80c857",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle a^{2}$"
      ],
      "text/plain": [
       "a**2"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sw,sJ,sa = symbols('w,J,a')\n",
    "sJ = sa**2\n",
    "sJ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "5083d723",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 121$"
      ],
      "text/plain": [
       "121"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sJ.subs([(sa,a)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1a5fb459",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 a$"
      ],
      "text/plain": [
       "2*a"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dJ_da = diff(sJ, sa)\n",
    "dJ_da"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "806f1e96",
   "metadata": {},
   "source": [
    "So, $\\frac{\\partial J}{\\partial a} = 2a$. When $a=11$, $\\frac{\\partial J}{\\partial a} = 22$. This matches our arithmetic calculation above.\n",
    "If you have not already done so, you can go back to the diagram above and fill in the value for $\\frac{\\partial J}{\\partial a}$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8010c2b1",
   "metadata": {
    "tags": []
   },
   "source": [
    "### $\\frac{\\partial J}{\\partial w}$ \n",
    "<img align=\"left\" src=\"./images/C2_W2_BP_network0_a.PNG\"     style=\" width:100px; padding: 10px 20px; \" >  Moving from right to left, the next value we would like to compute is $\\frac{\\partial J}{\\partial w}$. To do this, we first need to calculate $\\frac{\\partial a}{\\partial w}$ which describes how the output of this node, $a$, changes when the input $w$ changes a little bit."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f47785a7",
   "metadata": {},
   "source": [
    "#### Arithmetically\n",
    "Find $\\frac{\\partial a}{\\partial w}$ by finding how $a$ changes as a result of a little change in $w$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d4cd0777",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a = 11, a_epsilon = 11.003, da_dw ~= k = 3.0000000000001137 \n"
     ]
    }
   ],
   "source": [
    "w_epsilon = w + 0.001       # a  plus a small value, epsilon\n",
    "a_epsilon = 2 + 3*w_epsilon\n",
    "k = (a_epsilon - a)/0.001   # difference divided by epsilon\n",
    "print(f\"a = {a}, a_epsilon = {a_epsilon}, da_dw ~= k = {k} \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe63c675",
   "metadata": {},
   "source": [
    "Calculated arithmetically,  $\\frac{\\partial a}{\\partial w} \\approx 3$. Let's try it with SymPy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "2d788139",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3 w + 2$"
      ],
      "text/plain": [
       "3*w + 2"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sa = 2 + 3*sw\n",
    "sa"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "6a068532",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3$"
      ],
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "da_dw = diff(sa,sw)\n",
    "da_dw"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45bbe997",
   "metadata": {},
   "source": [
    ">The next step is the interesting part:\n",
    "> - We know that a small change in $w$ will cause $a$ to change by 3 times that amount.\n",
    "> - We know that a small change in $a$ will cause $J$ to change by $2\\times a$ times that amount. (a=11 in this example)    \n",
    " so, putting these together, \n",
    "> - We  know that a small change in $w$ will cause $J$ to change by $3 \\times 2\\times a$ times that amount.\n",
    "> \n",
    "> These cascading changes go by the name of *the chain rule*.  It can be written like this: \n",
    " $$\\frac{\\partial J}{\\partial w} = \\frac{\\partial a}{\\partial w} \\frac{\\partial J}{\\partial a} $$\n",
    " \n",
    "It's worth spending some time thinking this through if it is not clear. This is a key take-away.\n",
    " \n",
    " Let's try calculating it:\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "5e8e92cf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 6 a$"
      ],
      "text/plain": [
       "6*a"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dJ_dw = da_dw * dJ_da\n",
    "dJ_dw"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34d22689",
   "metadata": {},
   "source": [
    "And $a$ is 11 in this example so $\\frac{\\partial J}{\\partial w} = 66$. We can check this arithmetically:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "d87f7986",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "J = 121, J_epsilon = 121.06600900000001, dJ_dw ~= k = 66.0090000000082 \n"
     ]
    }
   ],
   "source": [
    "w_epsilon = w + 0.001\n",
    "a_epsilon = 2 + 3*w_epsilon\n",
    "J_epsilon = a_epsilon**2\n",
    "k = (J_epsilon - J)/0.001   # difference divided by epsilon\n",
    "print(f\"J = {J}, J_epsilon = {J_epsilon}, dJ_dw ~= k = {k} \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71594a83",
   "metadata": {},
   "source": [
    "OK! You can now fill the values for  $\\frac{\\partial a}{\\partial w}$ and $\\frac{\\partial J}{\\partial w}$ in  the diagram if you have not already done so. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60f0cd23",
   "metadata": {},
   "source": [
    "**Another view**  \n",
    "One could visualize these cascading changes this way:  \n",
    "<img align=\"center\" src=\"./images/C2_W2_BP_network0_diff.PNG\"  style=\" width:500px; padding: 10px 20px; \" >  \n",
    "A small change in $w$ is multiplied by $\\frac{\\partial a}{\\partial w}$ resulting in a change that is 3 times as large. This larger change is then multiplied by $\\frac{\\partial J}{\\partial a}$ resulting in a change that is now $3 \\times 22 = 66$ times larger."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fcb4b3df",
   "metadata": {},
   "source": [
    "## Computation Graph of a Simple Neural Network\n",
    "Below is a graph of the neural network used in the lecture with different values. Try and fill in the values in the boxes. Note, the interactive graphic is not particularly robust. If you run into trouble with the interface, run the cell below again to restart."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "de708e2b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<lab_utils_backprop.plt_network at 0x1eaaaf5e5f0>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a1fb1868a11648108597a6a139264dce",
       "version_major": 2,
       "version_minor": 0
      },
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+AAAAH0CAYAAAC9/0fZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADgM0lEQVR4nOzdd3wUdf7H8ddsS+8JIQ0ChN6kiwgo6FlOPLFgQc6CWFCxd8+O7X72dmc5Tzy7YIMTu9KU3nsNHRLSSN/dmd8fK3tEklCSbNr7+XjkAdmdnfnu5Ls78/mWz9ewLMtCREREREREROqUrb4LICIiIiIiItIcKAAXERERERERCQAF4CIiIiIiIiIBoABcREREREREJAAUgIuIiIiIiIgEgAJwERERERERkQBQAC4iIiIiIiISAArARURERERERAJAAbiIiIiIiIhIACgAFxEREREREQkABeAiIiIiIiIiAaAAXERERERERCQAFICLiIiIiIiIBIACcBEREREREZEAUAAuIiIiIiIiEgAKwEVEREREREQCQAG4iIiIiIiISAAoABcREREREREJAAXgIiIiIiIiIgGgAFxEREREREQkABSAi4iIiIiIiASAAnARERERERGRAFAALiIiIiIiIhIACsBFREREREREAkABuIiIiIiIiEgAKAAXERERERERCQAF4CIiIiIiIiIBoABcREREREREJAAUgIuIiIiIiIgEgAJwERERERERkQBQAC4iIiIiIiISAArARURERERERAJAAbiIiIiIiIhIACgAFxEREREREQkABeAiIiIiIiIiAaAAXERERERERCQAFICLiIiIiIiIBIACcBEREREREZEAUADeSBmGweeffw7Ali1bMAyDJUuWHNFrL7/8cs4555wjPtbR7r+u9tGYFRcXc9555xEZGYlhGOTl5ZGens7zzz/v3+Zo/6Z/fH19ObjcIiIiIiJSNUd9F0AOtXv3biZOnMi0adPYsWMHLVq04LjjjuPmm29m+PDhh2yflpbGrl27iI+Pr5Py1PX+G6qff/6Zk08+mdzcXKKjo2u0r3feeYeZM2cyZ84c4uPjiYqKYv78+YSFhR3zPmv6ehERERERCSwF4A3Mli1bGDRoENHR0fz973+ne/fuuN1uvvnmG66//nrWrFlzyGvsdjstW7asszLV9f6bg40bN9K5c2e6devm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AJ07d+bXX3+tELzNnj2biIgIUlNTAZgzZw5PPfUUX331FeHh4f55wwC9e/dm5cqVpKenk5GRUeHnwJx6wzAYNGgQDz/8MIsXL8blcvHZZ59VWlaXywWA1+v1P9auXTtcLhezZ8/2P+Z2u5k/fz5dunSp6ekJuNTUVIYOHcp7773He++9x6mnnkqLFi38z8+ePZsJEyZw5pln0rVrV4KCgioktfujA5nZd+3a5X/sj2uZ9+7dm1WrVh3yN8rIyPCfc4fDwSmnnMLTTz/NsmXL2LJlCz/++GMtvnMRERERkcBTAN7AvPLKK3i9Xvr378/kyZNZv349q1ev5sUXX6wwfLs6N9xwAwUFBVx00UUsWLCA9evX8+677x6SpbxFixb8+OOPrFmzhosvvrjSJG217ZVXXuGzzz5jzZo1XH/99eTm5vqTt40fP55t27Zx4403smbNGr744gsefPBBbr31Vmw2G/v372fMmDFMmDCBM844g/fee4+PPvqITz/9FIDrr7+enJwcLr74YubPn8/GjRv55ptvuOKKK/B6vcydO5fHH3+cBQsWsHXrVqZMmUJWVpa/AeCPWrdujWEYTJ06laysLAoLCwkLC+O6667jjjvuYPr06axatYpx48ZRXFzM2LFj6/z81YXRo0fz4Ycf8sknn1QYfg6+URnvvvsuq1evZu7cuYwePbraERYZGRmkpaXx0EMPsX79eqZNm8YzzzxTYZu77rqLOXPmcMMNN/hHKHzxxRf+xpSpU6fy4osvsmTJEjIzM5k0aRKmadKxY0cAXn75ZYYPH17LZ0FEREREpO4pAG9g2rZty6JFizj55JO57bbb6NatG6eeeio//PADr7322hHtIy4ujh9//JHCwkKGDh1Knz59eOONNyqdE96yZUt+/PFHli9fzujRoyv09taFJ598kieffJKePXsya9YsvvzyS+Lj4wFISUnhv//9L/PmzaNnz55ce+21jB07lvvvvx+Am266ibCwMB5//HEAunfvzuOPP84111zDjh07SE5OZvbs2Xi9Xv70pz/RvXt3br75ZqKjo7HZbERGRjJjxgzOPPNMOnTowP33388zzzzDGWecUWlZU1JSePjhh7n77rtJTEz0B4hPPvkk5513HmPGjKF3795s2LCBb775hpiYmDo9d3Xl/PPPZ9++fRQXF3POOedUeO6tt94iNzeX3r17+xs/Du4h/yOn08kHH3zAmjVr6NGjB0899ZQ/i/0BPXr04JdffmHdunUMHjyYXr168cADD5CcnAz4sv1PmTKFYcOG0blzZ/7xj3/wwQcf0LVrVwCys7OrXFJPRERERKQhM6zayvwlIiIiIiIiIlVSD7iIiIiIiIhIACgAFxEREREREQkABeAiIiIiIiIiAaAAXERERERERCQAFICLiIiIiIiIBIACcBEREREREZEAUAAuIiIiIiIiEgAKwEVEREREREQCwFHfBZD6YZomO3fuJCIiAsMw6rs4IiIiIiJSiyzLYv/+/SQnJ2Ozqd+1oVAA3kzt3LmTtLS0+i6GiIiIiIjUoW3btpGamlrfxZDfKQBvpiIiIgD4fPZK2iXH13NpRERERESkNhXu38/AHhn++35pGBSAN1MHhp23S46nW3qLei6NiIiIiIjUpoKCYABNN21gNBlAREREREREJAAUgIuIiIiIiIgEgAJwERERERERkQBQAC4iIiIiIiISAArARURERKRZsiyLkpISfvnlFwoKCuq7OCLSDCgAFxEREZFmxbIsTNNkxYoVXH311dx4441kZ2fXd7FEpBnQMmQiIiIi0qxYlsX333/PrFmziIiIoKioqL6LJCLNhHrARURERKRZMQyDzp07c/fddzNs2LD6Lo6INCPqARcRERGRZsUwDNLS0uq7GCLSDKkHXERERERERCQAFICLiIiIiIiIBIACcBEREREREZEAUAAuIiIiIiIiEgBKwiYiIiIizc7evXtZtWoVkydPJisri08++YRTTz2V4447DputafRRbd++ncmTJ7Nnzx5ycnIYMWIEZ5xxRpN5fyKNkT59IiIiItLslJSUkJ+fz6hRo3jnnXfo0KEDWVlZWJZV30WrNWvWrKG8vJwHHniAYcOG8dRTT1FYWFjfxRJp1tQDLiIiItKM5LktSrwWdgPiXQY2w6jvIh3Csiyyyi28FtgNiHUaOGy1W87WrVvTunXroypTYWEhc+fOJSoqin79+tVqeY5VYWEhX331FQMHDiQtLQ273e5/bvjw4QwbNgzDMIiMjCQ6OhqHQ7f/IvVJPeAiIiIizci3ez2cMLOQkfOKyffUd2kq57XgjpWldPh+P7etKKXAU7+90pZlsX37dm666SaWL19Oenp6vZbnYMHBwSQnJ/Pggw/y6aef4vH8749qGAaG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a9myJYMHD+aDDz7gnHPOIT09naSkpFo5tkhdUQ+4NGlOp5PevXvjcvnmy4WFhREWFsbKlSsPmyinIUqOSGbSyEn1XYwGQUnY6kZUVBRdunTBbrdjGAYxMTGYpsmGDRvqu2hVOtyt6oGGKxGA0NBQevTo4e/BjI+Px+l0smrVqnouWfXUkHR0ajpKyjRNli9fTvv27QkLC8Pr9fL1118TGxtLenp6jct3YG75+vXradu2LZmZmWRlZdV4v/XJ4/Ewf/58+vXrR1BQUK3sMycnh5CQEHr16nVI8G2aJgsWLMDtdhMdHc3mzZspKCioleOK1CX1gEuTZpomGzduZPr06eTm5pKamkpxcTFlZWXs37+fl19+mfz8fG666SZSU1Nxu928//77hIaGcv7555Ofn88bb7zB3r17ufrqqyvNeir1wwBF4HXA7XazaNEiZs6cSVlZGYmJiZSWllbI8m+aJps2bWLGjBlkZmZSVlbGyJEjGTBgQL2U+XDVQA1XcjCv18uaNWv49ttv2b9/P126dKGkpKTCUpKWZbFr1y6+++47MjMzSUxMJDExEZfLxemnn14vyZ00Auro1bQH/MD3nmmarFixgs8++4zu3bsTFBSE2+2u0VDx0tJSHn30URITE7n33ntxOByNtuf7gP3797Ns2TLGjRtXa+8lMTGRRx99tNI591lZWdx9993cdNNNjBo1KiCrHYjUBvWAS5NlmibfffcdY8eOJSEhgWuuuYZ9+/axYMECYmJiCA8PJzU1lVdeeYWtW7cCvmQer7/+Ol999RVut5vIyEjCw8OZPHlyrbXmSu3QEPTa53a7efvtt7n33nvp27cvV155JfPnz2f37t3+dVdN0+Tnn3/m1ltvpXXr1lxxxRWsWrWqwc+flep5THA0gzsCy7L4+uuvueaaa0hPT+faa69l7dq1bNmyhdjYWP82a9euZdy4cRQWFnLttdeSkJDApZdeyvr16+vtBl8NSUenptcIm81Gq1at+OGHH7jvvvt4//336dq1K8HBwcyaNYv169fXuIwOh4PCwkLy8vLIysril19+YceOHTXeb31Zv349drudjh071to+v/vuO/r168eyZcsOec4wDBwOB/v27WP//v1s376d77//nv3799fa8UXqgnrApcnatWsX9913HyNHjuT888/H4XAwZMgQbDYbKSkpOBwOevXq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jO1FqvrM64eM7UW6fiyJCTgRERFZRFJSEipUqGDpMKgUSkxMhL+/v6XDMCleP2QqL8L1Y0lMwImIiMgiXFxcAAD79++Hs7OzhaOh0iAzMxORkZHyZ6s04/VDxvYiXT+WxASciIiILKJg2qyzszMTCDKqF2FKNq8fMpUX4fqxJE7uJyIiIiIiIjIDJuBEREREREREZsAEnIiIiIiIiMgMmIATERERERERmQETcCIiIiIiIiIzYAJOREREREREZAZMwImIiIiIiIjMgAk4ERERERERkRkwASciIiIqJZo3b45Vq1aV6DVu3bqF0NBQXLp0CQBw/PhxhIaGIj093QgREj2fTZs2oV69ek89Zu7cuejUqZPJY/nfa+LfxEZUgAk4ERER0VOMGTMGoaGhCA0NRfXq1dG8eXNMnz4deXl5lg7tuSUnJ6NGjRpo3769pUOhF9yYMWMwZMiQxx7/3yS3bdu22LFjh9niOnPmDKpWrYqBAwea7Zz0YmACTkRERFSMV155BYcOHcLff/+NL774Ar/88gu+//57S4f13DZt2oTWrVsjMzMT0dHRlg6HqFgajQYeHh5mO9+GDRvQs2dPnDhxAnfv3jXbean0YwJOREREVAw7Ozt4eXnBz88Pr732GiIiInDkyBH5eVEUsXjxYjRv3hy1atVCx44d8ddff8nPNW3aFD///HOh17x48SLCwsJw+/ZtAEB6ejrGjh2LRo0aoU6dOujduzcuX74sH3/z5k188MEHiIiIQO3atdGlS5dCMfxbkiRh06ZN6NSpE9q3b48NGzY8z1tCZFZFTfNesmSJfD188cUXRc5KWb9+Pdq0aYOaNWuidevW+Omnn4o9V1ZWFv7880+8/fbbaNasGTZv3my034OICTgRERHRM4iNjcWZM2egVqvlxxYvXowtW7Zg/Pjx+OOPP9CnTx+MHDkSUVFRUCgUaNeuHbZt21bodX7//XfUqVMH5cuXBwB88sknePjwIZYuXYpNmzahevXqeO+995CamgoAyM7ORmRkJFatWoXNmzfjlVdeweDBg5GUlPRM8R87dgy5ubmIiIhAx44d8ccffyA7O7tkbwqRmf3555+YO3cuhg0bho0bN8LLy+uxTq6tW7dizpw5GDZsGP78808MHz4c33//fbEJ9fbt2xEYGIjAwEB07NgRGzduhCRJpvx16AWisnQARERERNZu3759qF27NvR6PbRaLRQKBb788ksAgFarxeLFi7Fy5UrUrl0bAFChQgWcOnUKv/zyCxo0aICOHTti5cqVSEpKQrly5SCKIv744w988MEHAICTJ08iJiYGR48ehZ2dHQBg9OjR+Pvvv7Fjxw689dZbCAsLQ1hYmBzTp59+ir///ht79uxBz549//XvsmHDBrRt2xZKpRIhISGoUKEC/vrrL7z55pvGeruInknB9fVPBoPhqT+zZs0adO3aFd26dQMADBs2DEePHi00Cj537lyMGTMGr7/+OoD86/LatWv45Zdf0Llz5ye+9oYNG9CxY0cA+ctPMjIyEBUVhYYNGz7X70f0T0zAiYiIiIrRsGFDfPPNN8jJycGqVaugVCrRqlUrAEBCQgJycnLQr1+/Qj+j0+lQtWpVAEDVqlURFBSEbdu2YeDAgYiKisKjR4/QunVrAMCVK1eQnZ39WAM/NzcXN2/eBJA/LXbevHnYt28f7t+/D4PBgNzc3GcaAU9PT8euXbsKjRR27NgRGzZsYAJOFlNwff1TdHQ0Ro4c+cSfiYuLQ48ePQo9Fh4ejuPHjwPInzFy8+ZNjB07Vu4sAwC9Xg8XF5cnvm58fDzOnTuH+fPnAwBUKhXatm2LDRs2MAEno2ACTkRERFQMBwcHVKxYEQAwefJkdOrUCevXr0e3bt3k6duLFy+Gj49PoZ8rGM0GgA4dOuD333/HwIEDsW3bNjRp0gRly5YFkJ9ce3l54Ycffnjs3AXJwrRp03DkyBGMHj0aAQEB0Gg0GDp0KHQ63b/+PX7//Xfk5eWhe/fu8mOSJEEURVy/fh2VK1f+169FZCz/vL4KJCcnl+g1C67LiRMn4qWXXir0nELx5FW4GzZsgF6vxyuvvCI/JkkS7Ozs8NVXXz01eSf6N5iAExERET0DhUKBQYMGYerUqejQoQOCgoJgZ2eHpKQkNGjQ4Ik/1759e8yePRvnz5/Hjh07MH78ePm56tWr48GDB1AqlfD39y/y58+cOYPOnTujZcuWAPKT9oICbv/Wxo0b0a9fv8em344fPx4bN27EiBEjnun1iCwlKCgI0dHReOONN+TH/lnR39PTE97e3khMTJSnkxdHr9fjt99+w5gxY/Dyyy8Xeu7DDz/Etm3b8PbbbxslfnpxsQgbERER0TNq3bo1FAoFfvrpJzg7O6Nfv36YMmUKNm/ejJs3b+LChQv44YcfChV78vf3R+3atTF27FgYDAY0b95cfi4iIgLh4eH48MMPcejQIdy6dQunT5/Gd999h3PnzgEAKlasiF27duHSpUu4fPkyPvvsM4ii+K9jvnTpEi5cuICuXbsiJCSk0J927dphy5Yt0Ov1xnuTiEyod+/e2LhxIzZu3Ijr16/j+++/x9WrVwsdM3ToUCxZsgRr1qzB9evXceXKFWzcuBErV64s8jX37duHtLS0Iq+R119/nTsGkFEwASciIiJ6RiqVCj179sSyZcuQnZ2NTz/9FEOGDMHixYvRtm1bDBgwAPv27XtsNLtDhw64fPkyWrZsCY1GIz8uCAKWLFmC+vXr4/PPP0fr1q0xfPhw3L59G56engCAMWPGwNXVFT169MDgwYPxyiuvoHr16v865g0bNiA4OBhBQUGPPdeyZUs8fPgQ+/fvf853hMi82rZtiyFDhmDGjBl48803kZSU9NjodLdu3TBp0iRs2rQJHTp0QK9evbB58+YnzjLZsGEDIiIiipxm3qpVK5w/f77Q1oBEz0OQWFOfiIiILCA9PR1ubm44deoUnJ2dLR0OlQKZmZmoW7cu0tLS4OrqaulwTIrXDxnbi3T9WBJHwImIiIiIiIjMgAk4ERERERERkRkwASciIiIiIiIyAybgRERERERERGbABJyIiIiIiIjIDJiAExEREREREZkBE3AiIiIiIiIiM2ACTkRERERERGQGTMCJiIiIiIiIzIAJOBEREREREZEZMAEnIiIiIiIiMgMm4ERERERERERmwASciIiIiIiIyAxUlg6AiIiIXkySJAEAMjMzLRwJlRYFn6WCz1ZpxuuHjO1Fun4siQk4ERERWURGRgYAIDIy0sKRUGmTkZEBNzc3S4dhUrx+yFRehOvHkgSJXRxERERkAaIoIikpCS4uLhAEwdLhUCkgSRIyMjJQrlw5KBSle6Ulrx8ythfp+rEkJuBEREREREREZsCuDSIiIiIiIiIzYAJOREREREREZAZMwImIiIiIiIjMgAk4ERERERERkRkwASciIiIiIiIyAybgRERERERERGbABJyIiIiIiIjIDP4PPYmpsmdO3EcAAAAASUVORK5CYII=",
      "text/html": [
       "\n",
       "            <div style=\"display: inline-block;\">\n",
       "                <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
       "                    Figure\n",
       "                </div>\n",
       "                <img src='' width=992.2644163150492/>\n",
       "            </div>\n",
       "        "
      ],
      "text/plain": [
       "Canvas(footer_visible=False, header_visible=False, toolbar=Toolbar(toolitems=[('Home', 'Reset original view', …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.close(\"all\")\n",
    "plt_network(config_nw1, \"./images/C2_W2_BP_network1.PNG\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eeb31b52",
   "metadata": {},
   "source": [
    "Below, we will go through the computations required to fill in the above computation graph in detail. We start with the forward path."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9113fa00",
   "metadata": {},
   "source": [
    "### Forward propagation\n",
    "The calculations in the forward path are the ones you have recently learned for neural networks. You can compare the values below to those you calculated for the diagram above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "95c103dc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "J=4.5, d=3, a=4, c=-4\n"
     ]
    }
   ],
   "source": [
    "# Inputs and parameters\n",
    "x = 2\n",
    "w = -2\n",
    "b = 8\n",
    "y = 1\n",
    "# calculate per step values   \n",
    "c = w * x\n",
    "a = c + b\n",
    "d = a - y\n",
    "J = d**2/2\n",
    "print(f\"J={J}, d={d}, a={a}, c={c}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "48b0aad1",
   "metadata": {},
   "source": [
    "### Backward propagation (Backprop)\n",
    "<img align=\"left\" src=\"./images/C2_W2_BP_network1_jdsq.PNG\"     style=\" width:100px; padding: 10px 20px; \" > As described in the lectures, backprop starts at the right and moves to the left. The first node to consider is $J = \\frac{1}{2}d^2 $ and the first step is to find $\\frac{\\partial J}{\\partial d}$ \n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "72ec88e0",
   "metadata": {
    "tags": []
   },
   "source": [
    "### $\\frac{\\partial J}{\\partial d}$ "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a13afd71",
   "metadata": {},
   "source": [
    "#### Arithmetically\n",
    "Find $\\frac{\\partial J}{\\partial d}$ by finding how $J$ changes as a result of a little change in $d$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "ef040cc3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "J = 4.5, J_epsilon = 4.5030005, dJ_dd ~= k = 3.0004999999997395 \n"
     ]
    }
   ],
   "source": [
    "d_epsilon = d + 0.001\n",
    "J_epsilon = d_epsilon**2/2\n",
    "k = (J_epsilon - J)/0.001   # difference divided by epsilon\n",
    "print(f\"J = {J}, J_epsilon = {J_epsilon}, dJ_dd ~= k = {k} \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ab8a185",
   "metadata": {},
   "source": [
    "$\\frac{\\partial J}{\\partial d}$ is 3, which is the value of $d$. Our result is not exactly $d$ because our epsilon value is not infinitesimally small. \n",
    "#### Symbolically\n",
    "Now, let's use SymPy to calculate derivatives symbolically, as we did in the derivatives optional lab. We will prefix the name of the variable with an 's' to indicate this is a *symbolic* variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "e8dd3647",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{d^{2}}{2}$"
      ],
      "text/plain": [
       "d**2/2"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sx,sw,sb,sy,sJ = symbols('x,w,b,y,J')\n",
    "sa, sc, sd = symbols('a,c,d')\n",
    "sJ = sd**2/2\n",
    "sJ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "dd1e4fd9",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{9}{2}$"
      ],
      "text/plain": [
       "9/2"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sJ.subs([(sd,d)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "776cd71c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle d$"
      ],
      "text/plain": [
       "d"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dJ_dd = diff(sJ, sd)\n",
    "dJ_dd"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d2f57fe8",
   "metadata": {},
   "source": [
    "So, $\\frac{\\partial J}{\\partial d}$ = d. When $d=3$, $\\frac{\\partial J}{\\partial d}$ = 3. This matches our arithmetic calculation above.\n",
    "If you have not already done so, you can go back to the diagram above and fill in the value for $\\frac{\\partial J}{\\partial d}$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cead3d50",
   "metadata": {},
   "source": [
    "### $\\frac{\\partial J}{\\partial a}$ \n",
    "<img align=\"left\" src=\"./images/C2_W2_BP_network1_d.PNG\"     style=\" width:100px; padding: 10px 20px; \" >  Moving from right to left, the next value we would like to compute is $\\frac{\\partial J}{\\partial a}$. To do this, we first need to calculate $\\frac{\\partial d}{\\partial a}$ which describes how the output of this node changes when the input $a$ changes a little bit. (Note, we are not interested in how the output changes when $y$ changes since $y$ is not a parameter.)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b689d707",
   "metadata": {},
   "source": [
    "#### Arithmetically\n",
    "Find $\\frac{\\partial d}{\\partial a}$ by finding how $d$ changes as a result of a little change in $a$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "de061567",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "d = 3, d_epsilon = 3.0010000000000003, dd_da ~= k = 1.000000000000334 \n"
     ]
    }
   ],
   "source": [
    "a_epsilon = a + 0.001         # a  plus a small value\n",
    "d_epsilon = a_epsilon - y\n",
    "k = (d_epsilon - d)/0.001   # difference divided by epsilon\n",
    "print(f\"d = {d}, d_epsilon = {d_epsilon}, dd_da ~= k = {k} \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6dad3683",
   "metadata": {},
   "source": [
    "Calculated arithmetically,  $\\frac{\\partial d}{\\partial a} \\approx 1$. Let's try it with SymPy.\n",
    "#### Symbolically"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "d8dbaf35",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle a - y$"
      ],
      "text/plain": [
       "a - y"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sd = sa - sy\n",
    "sd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "d8028fcf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 1$"
      ],
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dd_da = diff(sd,sa)\n",
    "dd_da"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75e9c210",
   "metadata": {},
   "source": [
    "Calculated arithmetically,  $\\frac{\\partial d}{\\partial a}$ also equals 1.  \n",
    ">The next step is the interesting part, repeated again in this example:\n",
    "> - We know that a small change in $a$ will cause $d$ to change by 1 times that amount.\n",
    "> - We know that a small change in $d$ will cause $J$ to change by $d$ times that amount. (d=3 in this example)    \n",
    " so, putting these together, \n",
    "> - We  know that a small change in $a$ will cause $J$ to change by $1\\times d$ times that amount.\n",
    "> \n",
    ">This is again *the chain rule*.  It can be written like this: \n",
    " $$\\frac{\\partial J}{\\partial a} = \\frac{\\partial d}{\\partial a} \\frac{\\partial J}{\\partial d} $$\n",
    " \n",
    " Let's try calculating it:\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "fd330aaa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle d$"
      ],
      "text/plain": [
       "d"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dJ_da = dd_da * dJ_dd\n",
    "dJ_da"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9434b28a",
   "metadata": {},
   "source": [
    "And $d$ is 3 in this example so $\\frac{\\partial J}{\\partial a} = 3$. We can check this arithmetically:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "ea02e4ac",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "J = 4.5, J_epsilon = 4.503000500000001, dJ_da ~= k = 3.0005000000006277 \n"
     ]
    }
   ],
   "source": [
    "a_epsilon = a + 0.001\n",
    "d_epsilon = a_epsilon - y\n",
    "J_epsilon = d_epsilon**2/2\n",
    "k = (J_epsilon - J)/0.001   \n",
    "print(f\"J = {J}, J_epsilon = {J_epsilon}, dJ_da ~= k = {k} \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7911e9a",
   "metadata": {},
   "source": [
    "OK, they match! You can now fill the values for  $\\frac{\\partial d}{\\partial a}$ and $\\frac{\\partial J}{\\partial a}$ in the diagram if you have not already done so. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41a4a2ca",
   "metadata": {
    "tags": []
   },
   "source": [
    "> **The steps in backprop**   \n",
    ">Now that you have worked through several nodes, we can write down the basic method:\\\n",
    "> working right to left, for each node:\n",
    ">- calculate the local derivative(s) of the node\n",
    ">- using the chain rule, combine with the derivative of the cost with respect to the node to the right.   \n",
    "\n",
    "The 'local derivative(s)' are the derivative(s) of the output of the current node with respect to all inputs or parameters.\n",
    "\n",
    "Let's continue the job. We'll be a bit less verbose now that you are familiar with the method."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6a3b7f1b",
   "metadata": {
    "tags": []
   },
   "source": [
    "### $\\frac{\\partial J}{\\partial c}$,  $\\frac{\\partial J}{\\partial b}$\n",
    "<img align=\"left\" src=\"./images/C2_W2_BP_network1_a.PNG\"     style=\" width:100px; padding: 10px 20px; \" >The next node has two derivatives of interest. We need to calculate  $\\frac{\\partial J}{\\partial c}$ so we can propagate to the left. We also want to calculate   $\\frac{\\partial J}{\\partial b}$. Finding the derivative of the cost with respect to the parameters $w$ and $b$ is the object of backprop. We will find the local derivatives,  $\\frac{\\partial a}{\\partial c}$ and  $\\frac{\\partial a}{\\partial b}$ first and then combine those with the derivative coming from the right, $\\frac{\\partial J}{\\partial a}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "b6f8480d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle b + c$"
      ],
      "text/plain": [
       "b + c"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# calculate the local derivatives da_dc, da_db\n",
    "sa = sc + sb\n",
    "sa"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "517d398f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 1\n"
     ]
    }
   ],
   "source": [
    "da_dc = diff(sa,sc)\n",
    "da_db = diff(sa,sb)\n",
    "print(da_dc, da_db)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "e5c4b3a4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dJ_dc = d,  dJ_db = d\n"
     ]
    }
   ],
   "source": [
    "dJ_dc = da_dc * dJ_da\n",
    "dJ_db = da_db * dJ_da\n",
    "print(f\"dJ_dc = {dJ_dc},  dJ_db = {dJ_db}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "99c8f9f5",
   "metadata": {},
   "source": [
    "And in our example, d = 3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "32d0a738",
   "metadata": {
    "tags": []
   },
   "source": [
    "###  $\\frac{\\partial J}{\\partial w}$\n",
    "<img align=\"left\" src=\"./images/C2_W2_BP_network1_c.PNG\"     style=\" width:100px; padding: 10px 20px; \" > The last node in this example calculates `c`. Here, we are interested in how J changes with respect to the parameter w. We will not back propagate to the input $x$, so we are not interested in $\\frac{\\partial J}{\\partial x}$. Let's start by calculating $\\frac{\\partial c}{\\partial w}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "2f67c3e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle w x$"
      ],
      "text/plain": [
       "w*x"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# calculate the local derivative\n",
    "sc = sw * sx\n",
    "sc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "bd3b112f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x$"
      ],
      "text/plain": [
       "x"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dc_dw = diff(sc,sw)\n",
    "dc_dw"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ef136e9",
   "metadata": {},
   "source": [
    "This derivative is a bit more exciting than the last one. This will vary depending on the value of $x$. This is 2 in our example.\n",
    "\n",
    "Combine this with $\\frac{\\partial J}{\\partial c}$ to find $\\frac{\\partial J}{\\partial w}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "ca72dfef",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle d x$"
      ],
      "text/plain": [
       "d*x"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dJ_dw = dc_dw * dJ_dc\n",
    "dJ_dw"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "8419a99d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dJ_dw = 2*d\n"
     ]
    }
   ],
   "source": [
    "print(f\"dJ_dw = {dJ_dw.subs([(sd,d),(sx,x)])}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1cd855a",
   "metadata": {},
   "source": [
    "$d=3$,  so $\\frac{\\partial J}{\\partial w} = 6$ for our example.   \n",
    "Let's test this arithmetically:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "5b38a46a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "J = 4.5, J_epsilon = 4.506002, dJ_dw ~= k = 6.001999999999619 \n"
     ]
    }
   ],
   "source": [
    "J_epsilon = ((w+0.001)*x+b - y)**2/2\n",
    "k = (J_epsilon - J)/0.001  \n",
    "print(f\"J = {J}, J_epsilon = {J_epsilon}, dJ_dw ~= k = {k} \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dab9f839",
   "metadata": {},
   "source": [
    "They match! Great. You can add $\\frac{\\partial J}{\\partial w}$ to the diagram above and our analysis is complete."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b8c85458",
   "metadata": {},
   "source": [
    "## Congratulations!\n",
    "You've worked through an example of back propagation using a computation graph. You can apply this to larger examples by following the same node by node approach. "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
